use std::path::PathBuf ;


use clap::{Parser,command} ;


#[derive(Debug,Default,Parser)]   // 三种特性 
#[command(name="jizi")] // 配置命令行的程序名称
pub struct Args{

    // set the current working entry
    #[arg(index=1,num_args=1..=9)]   // 位置参数  从第一个未命名参数开始解析  可以接受1..9个值
    pub entries : Vec<PathBuf> , 

    // 
    #[arg(long)] // 将字段标记成长参数  --cwd-file
    pub cwd_file : Option<PathBuf> , // 存储命令行中指定的工作目录文件路径

    #[arg(long)]
    pub chooser_file : Option<PathBuf> , // 存储命令行指定的选择器文件路径

    #[arg(long)]
    pub clear_cache : bool , // 是否清空缓存

    #[arg(long)]
    pub client_id : Option<u64> , // 客户端id 全局唯一

    #[arg(long)]
    pub local_events: Option<String> ,  // 存储命令行指定的本地事件报告

    #[arg(long)]
    pub remote_events: Option<String> , // 远程事件报告

    #[arg(long)]
    pub debug : bool , // 是否打印调试信息

    #[arg(short='V' , long)] 
    pub version : bool ,  // 打印版本信息
}